package com.xiaoxu.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoxu.base.model.PageParams;
import com.xiaoxu.base.model.PageResult;
import com.xiaoxu.content.model.dto.AddCourseDto;
import com.xiaoxu.content.model.dto.CourseBaseInfoDto;
import com.xiaoxu.content.model.dto.EditCourseDto;
import com.xiaoxu.content.model.dto.QueryCourseParamsDto;
import com.xiaoxu.content.model.po.CourseBase;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author xiaoxu
 * @since 2023-01-15
 */
public interface CourseBaseService extends IService<CourseBase> {
    /**
     * 根据分页和查询条件查询课程基本信息
     * @param pageParams 分页参数
     * @param queryCourseParams  查询条件
     * @return PageResult
     */
    PageResult<CourseBase> queryCourseList(PageParams pageParams, QueryCourseParamsDto queryCourseParams);

    /**
     * 新增课程信息,包括基本信息和营销信息
     * @param companyId  培训机构Id
     * @param dto  新增课程属性
     * @return CourseBaseInfoDto
     */
    CourseBaseInfoDto addCourse(Long companyId, AddCourseDto dto);

    /**
     * 根据课程id查询课程基本信息，包括基本信息和营销信息
     * @param courseId 课程Id
     * @return CourseBaseInfoDto
     */
    CourseBaseInfoDto queryCourseInfoById(long courseId);

    /**
     * 根据课程id修改课程基本信息，包括基本信息和营销信息
     * @param companyId 培训机构Id
     * @param dto 新增课程属性
     * @return CourseBaseInfoDto
     */
    CourseBaseInfoDto updateCourse(Long companyId, EditCourseDto dto);
}
